package com.yidu.qianfeng.service;

import com.yidu.qianfeng.common.bean.company.EmpInfo;
import com.yidu.qianfeng.common.bean.transport.TransportProtocol;
import com.yidu.qianfeng.common.bean.waybill.Waybill;
import com.yidu.qianfeng.common.bean.waybill.WaybillCondition;
import com.yidu.qianfeng.common.util.LayuiJsonWrap;

/**
 * @Author: TangSheng
 * @Description: 运单业务接口
 * @Date Created in 16:59 2021/3/16
 * @since 1.0
 */
public interface WaybillService {

    /**
     * 添加新的运单
     * @param waybill 需要添加的新的运单的对象
     * @param loginEmpInfo
     * @return 结果信息
     */
    public String addNewWaybill(Waybill waybill, EmpInfo loginEmpInfo);

    /**
     * 查询运单托运单号批量删除运单
     * @param waybillConsignNumS 运单托运单号数组
     * @return 删除结果消息
     */
    public String deleteWaybillByConsignNumS(String[] waybillConsignNumS);

    /**
     * 修改运单
     * @param waybill 带托运单号主键的运单对象
     * @return 结果信息
     */
    public String updateWaybill(Waybill waybill);



    /**
     *  查询当前页运单，并返回layui格式包装的数据
     * @param page 当前页
     * @param limit 显示条目数
     * @return layui格式包装的数据
     */
    public LayuiJsonWrap queryWaybillLimitLayui(int page,int limit);


    /**
     *  根据条件分页查询运单
     * @param condition 运单查询条件包装类
     * @return layui数据包装类
     */
    public LayuiJsonWrap queryWaybillConditionLimitLayui(WaybillCondition condition);


    /**
     * 查询运单根据运单表主键
     * @param waybillConsignNum 运单表的主键，托运单号
     * @return 对应的运单信息
     */
    public Waybill queryWaybillById(String waybillConsignNum);

    /**
     * 查询司机正在运输的运输单路线
     * @param carNumber 司机车号
     * @return 运输协议，只有出发站和到达地
     */
    public TransportProtocol queryDriverNowRoute(String carNumber);

}
